Techniques for using controlled natural language to capture design intent for computer-aided design

ABSTRACT

A computing device for receiving a design problem statement describing a design problem in a controlled natural language (CNL) that defines permitted lexicons and syntax structures. The design problem statement is processed using the CNL lexicons and syntax structures to produce a job description executable by a design application for generating a design solution for the design problem statement. An improved CNL user interface that assists users to produce valid design problem statements that are CNL-compliant. The CNL user interface receives user-selectable terms that are compliant with the CNL lexicons and generates candidate problem statements that are compliant with CNL syntax structures and receives a selection of a candidate problem statement that is added to the design problem statement. A graphical user interface may display a graphical representation of a design problem statement that can be directly modified. A dialogue-based design process to explore possible design intentions and design solutions.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of United States provisional patentapplication titled, “Controlled Natural Language and Formal Graph Datato Capture Design Intent and Related Interfaces for Computer-AidedDesign Applications,” filed on May 9, 2014 and having Ser. No.61/991,181. The subject matter of this related application is herebyincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Embodiments of the present invention generally relate to computerscience and, more specifically, to techniques for using controllednatural language to capture design intent for computer-aided design.

2. Description of the Related Art

Designers use computer-aided design (CAD) systems to assist indeveloping solutions to design problems. Among other things, CAD systemsprovide complex functions to explore design solutions and support designmodeling at the direction of the designer. In general, CAD systems arepowerful tools that can significantly shorten product developmentcycles.

Existing CAD systems mainly support the analysis and modeling of designsolutions. One drawback of conventional CAD systems is that the designsolutions must be generated by the designers in advance. Some CADsystems have also been developed to assist in finding solutions fordesign problems. These systems may leverage existing design solutions asreference solutions. Another drawback of such conventional systems isthat designers must thoroughly understand the interface framework anduse-specific inputs of the system that can be used by the designers toretrieve the proper solutions for their given design problems. Suchrequirements can be quite challenging for designers and oftentimesrequire designers to spend an inordinate amount of time learning andmanaging the interface and system inputs instead of focusing on thedesign problems at hand.

As the foregoing illustrates, there is a need in the art for moreeffective techniques for developing solutions to design problems usingCAD systems.

SUMMARY OF THE INVENTION

One embodiment of the invention includes a computer-implemented methodfor processing a design problem statement. The method includes receivingthe design problem statement describing a design problem, the designproblem statement comprising a set of problem statements in a controllednatural language (CNL) that defines lexicons and syntax structurespermitted for the problem statements. The method further includesprocessing the design problem statement using the lexicons and syntaxstructures of the CNL to produce an executable job description that,when executed, produces the design solution for the design problemstatement.

At least one advantage of the disclosed technique is that the CAD systemcan receive, in CNL, a design problem statement specifying goals andintentions for a design solution and then produce the actual designsolution. With such an approach, the designer does not have to producethe design solution or spend time learning complicated user interfacesand input schemes.

One embodiment of the invention includes a computer-implemented methodfor generating a design problem statement comprising a set of problemstatements compliant with a controlled natural language (CNL) thatdefines lexicons and syntax structures permitted for problem statements.The method includes receiving a set of one or more selectable terms thatare compliant with lexicons of the CNL, generating a set of one or morecandidate problem statements based on the received set of selectableterms and syntax structures of the CNL, and receiving a selection of acandidate problem statement in the set candidate problem statements, theselected candidate problem statement comprising a problem statementcompliant with the lexicons and syntax structures of the CNL.

At least one advantage of the disclosed technique is that the CNL userinterface allows users not proficient in the lexicons and/or syntaxstructures of the CNL to easily and more effectively produce a validdesign problem statement.

One embodiment of the invention includes a computer-implemented methodfor receiving a design problem statement that is compliant with acontrolled natural language (CNL) that defines permitted lexicons andsyntax structures, the design problem statement specifying a pluralityof objects and at least one relationship between two objects. The methodfurther includes displaying, in a graphical user interface, a graphicalrepresentation of the received design problem statement, the graphicalrepresentation comprising a plurality of nodes representing theplurality of objects and at least one edge representing the at least onerelationship.

At least one advantage of the disclosed technique is that the graphicaluser interface provides immediate visual feedback of the received designproblem statement to verify that the received design problem statementis the intended design problem statement before conversion to anexecutable job description, thus saving time and processing resources.

One embodiment of the invention includes a computer-implemented methodfor receiving, from a multimodal user interface engine, a first designintention description describing goals of a design problem. The firstdesign intention description is mapped to a first set of observationsdescribing different aspects of the first design intention description.A first set of actions is then determined and executed based at least inpart on the first set of observations, the first set of actionscomprising producing a first modified design intention description fordisplaying in the multimodal user interface engine. The first set ofactions may further comprise producing one or more executable jobdescriptions for producing one or more suggested design solutions forthe first design intention description.

At least one advantage of the disclosed technique is that thedialogue-based design process allows a user to more fully explorepossible design intention descriptions and design solutions in aniterative manner. The iterative dialogue-based design process may assistthe user to find an optimal design solution.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the inventioncan be understood in detail, a more particular description of theinvention, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1 illustrates a system configured to implement one or more aspectsof the present invention;

FIG. 2 is a conceptual diagram of the syntax database of FIG. 1,according to one embodiment of the present invention;

FIG. 3 is a conceptual diagram of the lexicon database of FIG. 1,according to one embodiment of the present invention;

FIG. 4 illustrates a flow diagram of method steps for generating adesign solution for a design problem statement, according to oneembodiment of the present invention;

FIG. 5 illustrates another system configured to implement one or moreaspects of the present invention;

FIG. 6 shows an exemplary screenshot of a CNL user interface generatedby the CNL UI engine of FIG. 5, according to one embodiment of thepresent invention;

FIG. 7 illustrates a flow diagram of method steps for generating a validdesign problem statement that is CNL-compliant, according to oneembodiment of the present invention;

FIG. 8 illustrates yet another system configured to implement one ormore aspects of the present invention;

FIG. 9 shows a first exemplary screenshot of a graphical user interfacegenerated by the CNL graphical UI engine of FIG. 8, according to oneembodiment of the present invention;

FIG. 10 shows a second exemplary screenshot of a graphical userinterface generated by the CNL graphical UI engine of FIG. 8, accordingto one embodiment of the present invention;

FIG. 11 shows a third exemplary screenshot of a graphical user interfacegenerated by the CNL graphical UI engine of FIG. 8, according to oneembodiment of the present invention;

FIG. 12 illustrates a flow diagram of method steps for generating anintended design problem statement that is CNL-compliant, according toone embodiment of the present invention;

FIG. 13 illustrates yet another system configured to implement one ormore aspects of the present invention;

FIG. 14A is a conceptual diagram of a dialogue-based design processgenerated by the dialogue UI engine of FIG. 13, according to oneembodiment of the present invention;

FIG. 14B is a conceptual diagram of a state machine implemented by thestate manager of FIG. 14A, according to one embodiment of the presentinvention; and

FIG. 15 illustrates a flow diagram of method steps for generating adialogue-based design process, according to one embodiment of thepresent invention.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth toprovide a more thorough understanding of the present invention. However,it will be apparent to one of skill in the art that the presentinvention may be practiced without one or more of these specificdetails. In other instances, well-known features have not been describedin order to avoid obscuring the present invention.

FIG. 1 illustrates a system 100 configured to implement one or moreaspects of the present invention. As shown, the system 100 includes,without limitation, a computing device 110 coupled to a database 170.Computing device 110 may be a server system, client system, workstation,a laptop computer, a tablet or hand-held device, or any other type ofcomputing device. The system 100 may comprise a computer-aided design(CAD) system.

Computing device 110 includes one or more processing units 120 coupledto input/output (I/O) devices 130 and to memory unit 125. Processingunit(s) 120 may be a central processing unit (CPU), a graphicsprocessing unit (GPU), or a combination of different processing units,such as a CPU configured to operate in conjunction with a GPU. Ingeneral, processing unit 120 may be any technically feasible hardwareunit capable of processing data and/or executing software applications.I/O devices 130 are also coupled to memory unit 125 and includes inputdevices capable of receiving user input, output devices capable ofgenerating output, as well as network devices capable of communicatingvia a network (not shown). Examples of input devices include a keyboard,a mouse, a touchscreen, a microphone, or other input elements. Examplesof output devices include a monitor, a printer, or other outputelements. The input and output devices allow an end-user access to thesystem 100. Memory unit 125 includes a user interface (UI) engine 140, acontrolled natural language (CNL) engine 150, and a design engine 160. Auser/designer may input text information, received by the UI engine 140,by typing on a keyboard. In other embodiments, a user/designer may inputaudio information, received by the UI engine 140, by speaking into amicrophone. In these embodiments, the UI engine 140 comprises speechrecognition software to process the received speech audio and convert totext information.

Computing device 110 is coupled to the database 170 comprising a syntaxdatabase 200 and lexicon database 300. The syntax database 200 organizesand stores syntax/sentence structures permitted for problem statements.In some embodiments, there are a plurality of different types of problemstatements, each type of problem statement having an associated set ofsyntax/sentence structures that are permitted for that type of problemstatement. Thus, the syntax database 200 may organize and store grammarrules for syntax structures permitted in the problem statements. Thelexicon database 300 organizes and stores a set of lexicons specifyingterms permitted for problem statements. Thus, the lexicon database 300may organize and store a dictionary of terms permitted in the problemstatements. A term may comprise a word, number value, or math operator.

In some embodiments, the UI engine 140 receives a design problemstatement from a user/designer (e.g., via keyboard or microphone). Thedesign problem statement describes a design problem and specifies goalsand intentions of a design solution for the design problem. The designproblem statement comprises a set of one or more problem statements. Theproblem statements may be expressed using a controlled natural language(CNL) that specifies limited and predefined lexicons and syntaxstructures that are permitted for the problem statements. The CNL engine150 may receive the design problem statement specified in CNL, processthe set of problem statements of the design problem statement using thelexicon database 300 and syntax database 200, and produce an executablejob description (e.g., set of executable commands or scripts). Thedesign engine 160 may receive the executable job description to producea design solution for the design problem statement. The design engine160 may comprise a design application, such as a computer-aided design(CAD) application, computer-aided engineering (CAE) application,simulator application, modeler application, geometry generatorapplication, or the like.

Design Problem Statement Specified in Controlled Natural Language

The design problem statement comprises a set of one or more problemstatements that specify the goals and intent of a design problem. Thedesign problem statement may reflect the designer's definition of thedesign problem. In some embodiments, the problem statements areexpressed using a controlled natural language (CNL) described herein.The controlled natural language may comprise a human-based language(natural language) and not a computer-based language (e.g., software ormachine language). In these embodiments, the controlled natural languagecomprises a natural language but with significantly reduced and limitedlexicons and syntax/sentence structures (as compared with the naturallanguage). While natural language can give the most amount ofexpressiveness for users to describe design problems, a high degree ofcomputational complexity is involved in processing natural languageinput

The CNL defines terms of the lexicons and syntax structures which arethe only terms and syntax structures permitted and accepted in theproblem statements. By limiting the lexicons and syntax structurespermitted in the problem statements, the ambiguity and computationalcomplexity can be significantly reduced when processing the problemstatements, as compared to processing problem statements that permit allof a natural language without restriction. Also, users/designers onlyneed to learn the allowed lexicons and syntax structures defined by theCNL, instead of an entirely new input interface and method, therebyreducing complexity and increasing ease-of-use. Thus, the CNL describedherein may comprise a precisely defined subset of a natural languagethat restricts the lexicons and syntax structures to reduce ambiguitiesand complexities in the language.

In some embodiments, the CNL defines a plurality of different types ofproblem statements, each type of problem statement describing adifferent aspect of the design problem and/or design solution. FIG. 2 isa conceptual diagram of the syntax database of FIG. 1, according to oneembodiment of the present invention. As shown in the example of FIG. 2,the CNL defines and the syntax database 200 stores predefined syntaxstructures for five different types of problem statements includingfunction 210, objective 220, constraint 230, environment object 240, andenvironment interaction 250. Note that the number and types of problemstatements shown in FIG. 2 are examples for illustrative purposes only.In other embodiments, the CNL defines and the syntax database 200 storessyntax structures for more or less than five different types of problemstatements and/or other types of problem statements.

A “function” problem statement 210 may describe the functionalrequirements of the design solution, the intended purpose of the designsolution, and/or what the design solution should do. For example, afunction problem statement may specify that “a bracket is to support astructure.” Typically, a function problem statement does not describehow well the design solution should perform. A design problem statementmay comprise one or more function problem statements.

An “objective” problem statement 220 may specify a property in thedesign solution to be maximized or minimized. Thus, an objective problemstatement may specify optimizations for the design solution and includemeasurable criteria for evaluating the effectiveness of the designsolution (how well the design solution solves the design problem). Forexample, an objective problem statement may specify that “an objectiveis to minimize the weight of the bracket.” A design problem statementmay comprise one or more objective problem statements.

A “constraint” problem statement 230 may specify a limit on a propertyof the design solution that the design solution must not violate. Thus,a constraint problem statement sets a quantifiable limit of a propertythat the design solution cannot exceed. For example, a constraintproblem statement may specify that “the bracket cannot be wider than 3cm.” A design problem statement may comprise one or more constraintproblem statements.

Note that the design solution should meet all specified objectives andconstraints while achieving the function requirements. Objectives andconstraints will reduce the number of possible design solutions thatsatisfy the functional requirements. However, objectives are differentthan constraints in that objectives are used to judge how well thedesign solves the design problem (design optimization) while constraintsset quantifiable limits that the design cannot violate. The performanceof a design solution may be measured by how well the design solutionsatisfies its functions while meeting all objectives and constraints.

An “environment object” problem statement 240 may specify a property ofan interacting object in the environment of the design solution. Aninteracting object will interact with the design solution and have oneor more properties that must be considered when generating the designsolution. For example, an environment object problem statement mayspecify that “the weight of the shelf is 50 kg.” A design problemstatement may comprise one or more environment object problemstatements. An “environment interaction” problem statement 250 mayspecify a relationship between two environment/interacting objects. Forexample, an environment interaction problem statement may specify that“the shelf is located 2 m above the ground.” A design problem statementmay comprise one or more environment interaction problem statements.

In some embodiments, a design problem statement comprises at least onefunction problem statement. In other embodiments, a design problemstatement comprises at least one function problem statement, and atleast one other type of problem statement (such as an objective orconstraint problem statement). In further embodiments, a design problemstatement comprises at least one function problem statement, at leastone objective problem statement, and at least one constraint problemstatement. In these embodiments, the design problem statement comprisesa constrained optimization problem for maximizing or minimizing aspecified property of the design while not violating at least onespecified constraint.

For each type of problem statement, the CNL defines and the syntaxdatabase 200 stores an associated set of one or more predefined syntaxstructures that are permitted for that type of problem statement. Thesyntax database 200 may organize and store grammar rules for the sets ofsyntax structures for the different types of problem statements. Forexample, as shown in FIG. 2, a function problem statement may have threepredefined syntax structures, an objective problem statement may havetwo predefined syntax structures, a constraint problem statement mayhave four predefined syntax structures, an environment object problemstatement may have two predefined syntax structures, and an environmentinteraction problem statement may have two predefined syntax structures.Note that the number and types of syntax structures shown in FIG. 2 areexamples for illustrative purposes only. In other embodiments, the CNLdefines and the syntax database 200 stores a different number of syntaxstructures for each type of problem statement and/or other syntaxstructures for each type of problem statement. For example, additionalsyntax structures may be included for each type of problem statementthat include different sentence structures with the same meaning, suchas statements written in the passive voice.

In general, each predefined syntax/sentence structure for a problemstatement may specify a set of one or more required fixed terms and aset of one or more user-selectable terms, as well as the position andorder of the fixed terms and the user-selectable terms within theproblem statement. In particular, the syntax/sentence structure mayspecify the user-selectable terms by specifying particular types ofuser-selectable terms. Thus, a syntax structure may precisely specifythe position and order of fixed terms and one or more types ofuser-selectable terms within the problem statement. A term may comprisea word, number value, or math operator. In the example syntax structuresshown in FIG. 2, a fixed term is shown in normal font and types ofuser-selectable terms are shown in italics. For example, the secondsyntax structure for “Objectives” is “GeomQuantity of the design must beObjectiveFunction,” where “of the design must be” are fixed terms and“GeomQuantity,” and “ObjectiveFunction” are types of user-selectableterms. As another example, the first syntax structure for “Constraints”is “MechQuantity of the design must be MathOperator NumValue” where “ofthe design must be” are fixed terms and “MechQuantity,” “MathOperator,”and “NumValue” are types of user-selectable terms.

The user-selectable terms in the syntax structures may comprise aplurality of different types of user-selectable terms. In the example ofFIG. 2, there are seven different types of user-selectable termsincluding Object, Function, ObjectiveFunction, MechQuantity,GeomQuantity, MathOperator, and NumValue. The user-selectable terms thatare permitted in the syntax structures is predefined by the CNL andstored in the lexicon database 300. FIG. 3 is a conceptual diagram ofthe lexicon database of FIG. 1, according to one embodiment of thepresent invention. As shown in the example of FIG. 3, the CNL definesand the lexicon database 300 stores a lexicon of predefined terms foreach of seven different types of user-selectable terms, includinglexicons for Object 310, Function 320, ObjectiveFunction 330,MechQuantity 340, GeomQuantity 350, MathOperator 360, and NumValue 370.Thus, the lexicon database 300 stores a set of seven lexicons 310-370for the seven different types of user-selectable terms. The lexicondatabase 300 may organize and store a dictionary of user-selectableterms permitted in the problem statements. Note that the seven differenttypes of user-selectable terms shown in FIG. 3 are examples forillustrative purposes only. In other embodiments, the CNL defines andthe lexicon database 300 stores other types of user-selectable terms.Note that the terms shown in FIG. 3 for the different types ofuser-selectable terms are examples for illustrative purposes only. Inother embodiments, the CNL defines and the lexicon database 300 storesother terms for the different types of user-selectable terms.

The lexicon for Object 310 may include terms for objects specific to thedesign problem, where the terms may change depending on the particulardesign problem. The lexicon for Function 320 may include terms selectedfrom primary, secondary, and tertiary function terms from functionalbasis terminology. The lexicon for ObjectiveFunction 330 may includeterms based on the assumption that all optimization problems involvingmaximizing or minimizing a certain property. The lexicons forMechQuantity 340, GeomQuantity 350, and MathOperator 360 may includeterms based on typical static design and design problem models. Thelexicon for NumValue 370 may include any numerical value and a unit ofmeasure (e.g., 50 g, 500 kg, 25 cm, 5 m, etc.).

As described above, a design problem statement may be received throughthe UI engine 140, the design problem statement specified in a CNL thatdefines lexicons and syntax structures that are permitted for the designproblem statement. The CNL engine 150 may receive and process/analyzethe design problem statement using the lexicon database 300 and syntaxdatabase 200 and produce an executable job description (e.g., set ofexecutable commands or scripts). Restricting the lexicon and syntax ofthe design problem statement enables the CNL engine 150 to performmachine translation of the design problem statement into a formalrepresentation (executable job description). The design engine 160 maythen receive and execute the job description to produce a designsolution for the design problem statement.

FIG. 4 illustrates a flow diagram of method steps for generating adesign solution for a design problem statement, according to oneembodiment of the present invention. Although the method steps aredescribed in conjunction with the systems of FIG. 1-3, persons skilledin the art will understand that any system configured to perform themethod steps, in any order, is within the scope of the presentinvention.

As shown, a method 400 begins at step 410, where UI engine 140, whenexecuted by processing unit 120, receives a design problem statementfrom a user/designer that describes a design problem and specifies goalsand/or intentions of a design solution for the design problem. Thedesign problem statement is specified in a CNL that specifies limitedlexicons and syntax/sentence structures. The design problem statementcomprises a set of one or more problem statements comprising one or moredifferent types of problem statements (e.g., function, objective,constraint, etc.).

At step 420, the CNL engine 150 determines if the design problemstatement is compliant with the predefined syntax structures of the CNL.A syntax database 200 organizes and stores syntax structures permittedfor each type of problem statement and stores grammar rules for thesyntax structures. Each predefined syntax structure specifies theposition and order of fixed terms and one or more types ofuser-selectable terms within a problem statement. The CNL engine 150 maydetermine CNL syntax compliance by verifying that each of the problemsstatements of the design problem statement conform to a syntax structurestored in the syntax database 200. If the design problem statement doesnot conform with syntax structures of the CNL, the method 400 proceedsto step 410 where the UI engine 140 receives another design problemstatement from the user/designer. If the design problem statementconforms with syntax structures of the CNL, the method 400 proceeds tostep 430.

At step 430, the CNL engine 150 determines if the design problemstatement is compliant with the predefined lexicons of the CNL. Alexicon database 300 organizes and stores a set of lexicons specifyingterms permitted for user-selectable terms of the problem statements. TheCNL engine 150 may determine CNL lexicon compliance by verifying thateach of the problems statements of the design problem statement containuser-selectable terms that conform with the lexicons stored in thelexicon database 300. If the design problem statement does not conformwith lexicons of the CNL, the method 400 proceeds to step 410 where theUI engine 140 receives another design problem statement from theuser/designer. If the design problem statement conforms with lexicons ofthe CNL, the method 400 proceeds to step 440.

As described below, in steps 440-460 the CNL engine 150 processes(tokenizes and parses) problem statements of the design problemstatement using the lexicon database 300 and syntax database 200 toproduce a parsed representation of the design problem statement, theparsed representation comprising a design problem model. Based on thedesign problem model, the CNL engine 150 then produces an executable jobdescription that is executable by a design engine 160 to produce adesign solution for the design problem statement.

At step 440, the CNL engine 150 performs lexical analysis of the designproblem statement by tokenizing each problem statement to produce a setof tokenized terms for each problem statement based on the predefinedlexicons of the CNL. The CNL engine 150 may decompose each problemstatement into a set of user-selectable terms based the type ofuser-selectable term (e.g., by categorizing each user-selectable termbased the type of user-selectable term). As an example, assume afunction problem statement states “the design must support the weight ofthe shelf.” The lexical analysis of the function problem statement mayproduce the set of tokenized terms: “Object (design), Function(support), MechQuantity (weight), and Object (shelf).”

At step 450, the CNL engine 150 then performs syntax analysis of thesets of tokenized terms of the design problem statement based on thesyntax structures of the CNL. The CNL engine 150 may perform grammar andsyntax analysis of the sets of tokenized terms based on the syntaxstructures of the CNL stored to the syntax database 200. The syntaxanalysis may parse the tokenized terms of each problem statement of thedesign problem statement to produce a parsed representation of eachproblem statement. The parsed representation of a problem statement maycomprise the type of problem statement (e.g., function, objective,constraint, etc.), a list of object names, and relationships between theobjects. For example, for the set of tokenized terms for the problemstatement given in the above example, the syntax analysis may produce aparsed representation of the problem statement comprising: “problemstatement type: Function, Object 1: design, Object 2: shelf,Relationship: support.” The set of parsed representations of the set ofproblem statements of the design problem statement comprises a designproblem model that can be computationally solved and converted into anexecutable job description.

At step 460, the CNL engine 150 produces an executable job descriptionbased on the design problem model. The executable job description maycomprise a set of executable commands or scripts that when executed by adesign engine 160, produce a design solution for the design problemstatement. Executable job descriptions may comprise objective functions,constraints, and boundary conditions. An objective function comprises adesign variable to be minimized/maximized. A constraint may compriseallowed ranges for other design variables. A boundary conditions maycomprise forces or other mechanical quantities applied on the design. Ingeneral, objective statements may be translated into objective functions(e.g., minimize (MechQuantity)), constraint statements may be translatedinto constraints (e.g., GeomQuantity <50), and function statements andenvironment object statements may be translated into boundary conditions(e.g., ForceApplied=Object.MechQuantity). These example expressions maybe expressed in a programming language used to communicate to the designengine 160.

At step 470, the design engine 160 executes the executable jobdescription to produce a design solution. The design solution comprisesa solution for a design problem that is specified in the design problemstatement. The design engine 160 may comprise a design application, suchas a computer-aided design (CAD) application, computer-aided engineering(CAE) application, simulator application, modeler application, geometrygenerator application, or the like. For example, the design engine 160may produce a computer-aided design or a set of geometries that solvesthe design problem statement.

In some embodiments, a design problem statement comprises at least onefunction problem statement, at least one objective problem statement,and at least one constraint problem statement. In these embodiments, thedesign problem statement comprises a constrained optimization problemfor maximizing or minimizing a specified property of the design whilenot violating at least one specified constraint. In these embodiments,the design solution comprises a valid design solution satisfying allconstraints and an optimized design solution satisfying all objectivesfor the design problem statement. Thus, the system and methods describedherein has the ability to provide not just valid design solutions, butalso an optimized design solution.

In sum, a UI engine on a computing device 110 is configured to receive adesign problem statement from a user/designer that describes a designproblem. The design problem statement comprises a set of problemstatements. The problem statements are expressed in a CNL that specifieslexicons and syntax structures permitted for the problem statements. Thelexicons are stored on a lexicon database 300 and the syntax structuresare stored on a syntax database 200. A CNL engine 150 determines if thedesign problem statement is compliant with the lexicons and syntaxstructures of the CNL. If so, the CNL engine 150 processes (tokenizesand parses) problem statements of the design problem statement using thelexicon database 300 and syntax database 200 to produce a parsedrepresentation of the design problem statement, the parsedrepresentation comprising a design problem model. Based on the designproblem model, the CNL engine 150 then produces an executable jobdescription that is executable by a design engine 160 to produce adesign solution for the design problem statement. The design solutioncomprises a solution for a design problem that is specified in thedesign problem statement. The design engine 160 may comprise a designapplication, such as a computer-aided design (CAD) application,computer-aided engineering (CAE) application, simulator application,modeler application, geometry generator application, or the like. Insome embodiments, the design problem statement comprises a constrainedoptimization problem for maximizing or minimizing a specified propertyof the design while not violating at least one specified constraint. Inthese embodiments, the design solution comprises a valid design solutionsatisfying all constraints and an optimized design solution satisfyingall objectives for the design problem statement. Thus, the system andmethods described herein has the ability to provide not just validdesign solutions, but also an optimized design solution.

At least one advantage of the disclosed technique is that the CAD systemcan receive, in CNL, a design problem statement specifying goals andintentions for a design solution and then produce the design solution,without the designer having to initially produce the design solution.The CNL defines terms of the lexicons and syntax structures which arethe only terms and syntax structures permitted and accepted in theproblem statements. By limiting the lexicons and syntax structurespermitted in the problem statements, the ambiguity and computationalcomplexity can be significantly reduced when processing the problemstatements, as compared to processing problem statements that permit allof a natural language without restriction. Also, users/designers onlyneed to learn the allowed lexicons and syntax structures defined by theCNL, instead of an entirely new input interface and method, therebyreducing complexity and increasing ease-of-use.

User Interface for CNL

The UI engine 140 of FIG. 1 generates a basic user interface thatreceives, from a user, a design problem statement expressed in CNL.However, as discussed in relation to steps 410-430 of FIG. 4, if thereceived design problem statement is not complaint with either thesyntax structures or lexicons of the CNL, the user must resubmit a newdesign problem statement until CNL compliance is verified. For users notproficient in the syntax structures and/or lexicons of the CNL, thisprocess may require several attempts by the user before a valid designproblem statement is received. As used herein, a “valid” design problemstatement or problem statement comprises a design problem statement orproblem statement that is CNL-compliant (i.e., complies with the syntaxstructures and lexicons of the CNL thus would be verified asCNL-compliant in steps 420-430 of FIG. 4). Thus, a user interface thatassists users to produce a valid design problem statements moreeffectively is needed.

In some embodiments, a CNL UI engine generates an improved CNL-specificuser interface (CNL user interface) that assists users to produce validdesign problem statements that are CNL-compliant. The CNL user interfacemay provide assistance to users in choosing user-selectable terms thatare compliant with the CNL lexicons. Based on the user-selectable termsthat are chosen, the CNL user interface may then generate a set ofcandidate problem statements that are each compliant with the CNL syntaxstructures. Each candidate problem statement will thus be compliant withCNL lexicons and CNL syntax structures. Optionally, the CNL userinterface may also generate, based on a probabilistic grammar inductionmodel, a probability score for each candidate problem statementreflecting a probability level that the particular candidate problemstatement is the problem statement that the user intended. From the setof candidate problem statements, the user may then select a candidateproblem statement to be included in the design problem statement. Thisprocess may be repeated as necessary to produce a set of problemstatements comprising the design problem statement. Since each problemstatement in the set will be CNL-compliant, the design problem statementwill also be CNL-compliant.

Thus, the user would only need to choose user-selectable terms that arecompliant with the CNL lexicons (a task which the CNL user interface mayalso provide assistance in performing) and a candidate problem statementthat the user intended. From the chosen user-selectable terms, the CNLuser interface generates one or more candidate problem statements thatare CNL-compliant from which the user chooses. The CNL user interfaceallows users not proficient in the lexicons and/or syntax structures ofthe CNL to easily produce a valid design problem statement with a fastlearning curve.

FIG. 5 illustrates another system configured to implement one or moreaspects of the present invention. As shown, the system 500 includes,without limitation, a computing device 110 coupled to a database 170.Computing device 110 may be a server system, client system, workstation,a laptop computer, a tablet or hand-held device, or any other type ofcomputing device. The system 500 may comprise a computer-aided design(CAD) system. Several components shown in FIG. 5 have already beendescribed above in relation to FIG. 1 and, therefore, are not discussedin detail here.

Computing device 110 includes one or more processing units 120 coupledto input/output (I/O) devices 130 and to memory unit 125. Memory unit125 includes a CNL user interface (UI) engine 540, a controlled naturallanguage (CNL) engine 150, and a design engine 160. A user/designer mayinput text information, received by the CNL UI engine 540, by typing ona keyboard. In other embodiments, a user/designer may input audioinformation, received by the CNL UI engine 540, by speaking into amicrophone. In these embodiments, the CNL UI engine 540 comprises speechrecognition software to process the received speech audio and convert totext information.

Computing device 110 is coupled to the database 170 comprising a syntaxdatabase 200, lexicon database 300, and a probabilistic grammarinduction model 550. In some embodiments, the CNL UI engine 540generates an improved CNL user interface that assists users to producevalid design problem statements. The CNL user interface may do so usingthe syntax database 200, lexicon database 300, probabilistic grammarinduction model 550, and techniques described in this section. The CNLengine 150 may receive the design problem statement produced by the CNLUI engine 540 and process the design problem statement to produce anexecutable job description using techniques described above in relationto FIGS. 1-4 of the previous section. Note that the design problemstatement produced by the CNL UI engine 540 will be a valid designproblem statement that is CNL-compliant, and thus avoids the user havingto resubmit for design problem statements found to be invalid in steps410-430 of FIG. 4. The design engine 160 may receive the executable jobdescription to produce a design solution for the design problemstatement using techniques described above in relation to FIGS. 1-4 ofthe previous section.

As shown in FIG. 6, the CNL user interface 600 may comprise severalinteractive sections and selectable buttons, including a lexicon section605, term input section 620, “generate” button 630, candidate problemstatements (CPS) section 640, and a “select” button 650. The CNL userinterface 600 may receive input or and selections from a user/designerthrough various ways, such as speech or typed input.

The lexicon section 605 may display different types of user-selectableterms 610 (e.g., Object 610 a, Function 610 b, ObjectiveFunction 610 c,etc.). For each type of user-selectable term 610, the lexicon section605 may display the type name and the permitted terms for the type ofuser-selectable term as defined by the CNL and stored to the lexicondatabase 300. The different types of user-selectable terms and thepermitted terms for each type are discussed in relation to the lexicondatabase 300 of FIG. 3. (which shows as examples Object 310, Function320, ObjectiveFunction 330, MechQuantity 340, GeomQuantity 350,MathOperator 360, and NumValue 370).

The term input section 620 may receive as input a set of one or moreuser-selectable terms from the user and display the receiveduser-selectable terms. For example, the user may “drag and drop”user-selectable terms displayed in the lexicon section 605 into the terminput section 620 (by selecting a term in the lexicon section 605 anddragging and dropping the term into the term input section 620 using amouse or touchscreen). For example, the user may “drag and drop”user-selectable terms displayed in the lexicon section 605 into the terminput section 620 (by selecting a term in the lexicon section 605 anddragging and dropping the term into the term input section 620). The“drag and drop” operation is conceptually illustrated in FIG. 6 by thearrowed lines. As another example, the user may type the text of theuser-selectable terms directly into the term input section 620 using akeyboard. As a further example, the user may speak the user-selectableterms which are converted to text by speech recognition software anddisplayed in the term input section 620.

The user intends to express a particular problem statement by inputtingthe set of user-selectable terms, the problem statement for specifying aparticular aspect of a design problem and/or design solution. The set ofreceived user-selectable terms may form a portion of a problem statementthat is later completed by the user and the CNL user interface. Inparticular, the set of received user-selectable terms forms the lexiconportion of the particular problem statement that the user intends, andthe user and the CNL user interface later form the syntax portion of theparticular problem statement. After inputting one or moreuser-selectable terms into the term input section 620 and the user issatisfied with the received terms, the user selects the “generate”button 630 which activates the CNL user interface 600 to generate a setof one or more candidate problem statements that are displayed in theCPS section 640. The CNL user interface 600 may generate the set ofcandidate problem statements based on the received user-selectable termsand the syntax structures defined by the CNL and stored to the syntaxdatabase 200. For example, the CNL user interface 600 may compare thereceived user-selectable terms with the CNL syntax structures togenerate the set of candidate problem statements.

The CNL user interface 600 may also generate, based on a probabilisticgrammar induction model 550, a probability score for each candidateproblem statement reflecting a probability level that the particularcandidate problem statement is the problem statement that the userintended. The determined probability for each candidate problemstatement may be displayed in a probability section 645 of the CPSsection 640. The probabilistic grammar induction model may take a set ofwords as input. As output, the probabilistic grammar induction modelestimates the probability that a particular statement is relevant tothose set of words. The probabilistic grammar induction model mayestimate the probability for all possible statements but select only thestatements with the highest probabilities. The probabilistic grammarinduction model may be trained to estimate the probabilities using amachine learning algorithm or statistical modeling algorithm, based onsome training data specified by designers. The training data maycomprise problem statements paired with a set of lexicons. The specifictraining method may vary (e.g., logistic regression, neural network,Bayesian network).

Each candidate problem statement comprises a valid problem statementthat is CNL-compliant (i.e., complies with the syntax structures andlexicons of the CNL). Each candidate problem statement is asuggestion/inference of the problem statement that the user intended bythe received user-selectable terms. In other words, each candidateproblem statement comprises a suggestion of a problem statement that isintended by the received user-selectable terms. The user then selectsone of the candidate problem statements displayed in the CPS section640. For example, the user may select a candidate problem statement bydouble-clicking on the candidate problem statement in the CPS section640. Or the user may select a candidate problem statement bysingle-clicking on the candidate problem statement to highlight thecandidate problem statement in the CPS section 640 and then clicking onthe “select” button 650. The selected candidate problem statement isthen added to a design problem statement.

The above process may be repeated to input additional sets ofuser-selectable terms and add more candidate problem statements to thedesign problem statement as needed until the user is satisfied with thedesign problem statement. The design problem statement may then bereceived and processed by the CNL engine 150 to produce an executablejob description. Note that since each problem statement in the designproblem statement is CNL-compliant, the design problem statement willalso be CNL-compliant and thus would be verified as CNL-compliant by theCNL engine 150 in steps 420-430 of FIG. 4.

FIG. 7 illustrates a flow diagram of method steps for generating a validdesign problem statement that is CNL-compliant, according to oneembodiment of the present invention. Although the method steps aredescribed in conjunction with the systems of FIG. 5-6, persons skilledin the art will understand that any system configured to perform themethod steps, in any order, is within the scope of the presentinvention.

As shown, a method 700 begins at step 705, where the CNL UI engine 540,when executed by processing unit 120, produces a CNL user interface 600that displays different types of user-selectable terms and permittedterms for each type of user-selectable term, as defined by the CNL andstored to the lexicon database 300. The different types ofuser-selectable terms and the permitted terms for each type may beretrieved from the lexicon database 300 and displayed in a lexiconsection 605 of the CNL user interface 600. For example, as shown in FIG.6, the lexicon section 605 may display the type name (such as “Object”)and the permitted terms for the type (such as “design, bracket, shelf .. . ”).

At step 710, the CNL user interface 600 receives a set of one or moreuser-selectable terms from the user and displays the receiveduser-selectable terms. The received user-selectable terms comprisepermitted terms of one or more different types of user-selectable terms.For example, as shown in FIG. 6, the received set of user-selected termscomprises the permitted term “design” which is an “Object” type, thepermitted term “minimize” which is an “ObjectiveFunction” type, and thepermitted term “weight” which is a “MechQuantity” type. Theuser-selectable terms may be received in a term input section 620 of theCNL user interface 600 (e.g., via “drag and drop” operations, typing theterm, or speaking the terms) and displayed in the term input section620. Note that the set of user-selectable terms may be received anddisplayed in any sequence. The user intends to express a particularproblem statement by inputting the set of user-selectable terms, theproblem statement for specifying a particular aspect of a design problemand/or design solution.

At step 715, the CNL user interface 600 receives an indication from theuser to generate a set of candidate problem statements. For example, theCNL user interface 600 may receive a selection of a “generate” button630 which activates the CNL user interface 600 to generate the set ofcandidate problem statements. In response, at step 720, the CNL userinterface 600 generates and displays the set of candidate problemstatements based on the received user-selectable terms and the syntaxstructures predefined for problem statements (the syntax structuresdefined by the CNL and stored to the syntax database 200). The CNL userinterface 600 may display the set of candidate problem statements in theCPS section 640.

The CNL user interface 600 may generate the set of candidate problemstatements in step 720 by comparing the received user-selectable termswith the syntax structures stored to the syntax database 200 todetermine “matching” syntax structures. The set of candidate problemstatements may be generated based on the matching syntax structures.Recall that the received user-selectable terms comprise one or moredifferent types of user-selectable terms. Also, a syntax structure for aproblem statement specifies the position and order of fixed terms andtypes of user-selectable terms within a problem statement. The CNL userinterface 600 may determine the types of user-selectable terms for thereceived user-selectable terms, and identify any “matching” syntaxstructures that specify the same types of user-selectable terms. Thus,generating the set of candidate problem statements may comprisecomparing the types of user-selectable terms of the received set ofuser-selectable terms with the types of user-selectable terms of thesyntax structures of the CNL to determine matching syntax structures,which are then used to generate the set of candidate problem statements.

For example, as shown in FIG. 6, the received set of user-selected termscomprises the “Object” type, “ObjectiveFunction” type, and the“MechQuantity” type. Thus, any syntax structure that also specifies the“Object,” “ObjectiveFunction,” and “MechQuantity” types ofuser-selectable terms comprises a matching syntax structure. In someembodiments, the types of user-selectable terms specified in a matchingsyntax structure exactly overlap the types of user-selectable terms ofthe received user-selectable terms. For example, if the receiveduser-selectable terms comprises type1, type2, and type3, a matchingsyntax structure also specifies only type1, type2, and type3. In theseembodiments, a non-matching syntax structure may specify only type1 andtype2, or a non-matching syntax structure may specify type1, type2,type3, and type4. In other embodiments, the types of user-selectableterms specified in a matching syntax structure do not exactly overlapthe types of user-selectable terms of the received user-selectableterms.

To perform step 720, the CNL user interface 600 then generates acandidate problem statement for each matching syntax structure that isidentified. The matching syntax structure provides the syntax/sentencestructure of the candidate problem statement by specifying the positionand order of fixed terms and types of user-selectable terms for thecandidate problem statement. For example, a matching syntax structuremay specify “the MechQuantity of the Object must be ObjectiveFunction,”whereby MechQuantity, Object, and ObjectiveFunction are types ofuser-selectable terms. The CNL user interface 600 then inserts eachreceived user-selectable term at the position of its corresponding typeof user-selectable term within the candidate problem statement tocomplete the candidate problem statement. For example, as shown in FIG.6, the received set of user-selected terms comprises the term “weight”which is inserted into the position of the “MechQuantity” type, the term“design” which is inserted into the position of the “Object” type, theterm “minimize” which is inserted into the position of the“ObjectiveFunction” type within the candidate problem statement. Theresulting candidate problem statement is thus “the weight of the designmust be minimized” (as shown in the CPS section 640 of FIG. 6). Asdescribed above, the matching syntax structure provides thesyntax/sentence structure for the candidate problem statement and thereceived user-selectable terms provide the user-selectable terms for thecandidate problem statement. Thus, the syntax portion of the candidateproblem statement is provided by the matching syntax structure and thelexicon portion of the candidate problem statement is provided by thereceived user-selectable terms.

At step 725, the CNL user interface 600 may also generate, based on theprobabilistic grammar induction model 550, a probability for eachcandidate problem statement reflecting a probability that the particularcandidate problem statement is the problem statement that the userintended. The determined probability for each candidate problemstatement may be displayed in a probability section 645 of the CPSsection 640. In some embodiments, the candidate problem statements maybe displayed in the CPS section 640 in an order based on the determinedprobability (e.g., from highest to lowest probability).

Each candidate problem statement comprises a valid problem statementthat is CNL-compliant. However, a candidate problem statement is only asuggestion of the problem statement that the user intended by theinputted user-selectable terms. At step 730, the CNL user interface 600receives, from the user, a selection of one of the candidate problemstatements in the set of candidate problem statements displayed in theCPS section 640. The selected candidate problem statement comprises theproblem statement that the user intended from the inputteduser-selectable terms. In response, at step 735, the CNL user interface600 adds the selected candidate problem statement to the design problemstatement.

At step 740, the CNL user interface 600 determines if another problemstatement is to be added to the design problem statement. For example,the CNL user interface 600 may query the user if another problemstatement is to be added to the design problem statement, and receive a“yes” or “no” response from the user. If the CNL user interface 600determines that another problem statement is to be added to the designproblem statement, the method 700 continues at step 710 to receiveanother set of user-selectable terms, generate another set of candidateproblem statements, and add another problem statement to the designproblem statement. If the CNL user interface 600 determines that anotherproblem statement is not to be added to the design problem statement,the method 700 ends.

The design problem statement produced by the method 700 may then bereceived and processed by the CNL engine 150 and the design engine 160to produce an executable job description and a design solution inaccordance with the method 400 of FIG. 4. Note that since each problemstatement in the design problem statement set is CNL-compliant, thedesign problem statement is also CNL-compliant and thus would beverified as CNL-compliant by the CNL engine 150 in steps 420-430 of FIG.4. In other embodiments, steps 420-430 of FIG. 4 are omitted and notperformed when processing a design problem statement produced by themethod 700 of FIG. 7.

In sum, a CNL UI engine 540 generates an improved CNL-specific userinterface (CNL user interface 600) that assists users to produce validdesign problem statements that are CNL-compliant. The CNL user interfacemay provide assistance to users in choosing user-selectable terms thatare compliant with the CNL lexicons. Based on the user-selectable termsthat are chosen, the CNL user interface may then generate a set ofcandidate problem statements that are compliant with the CNL syntaxstructures. Each candidate problem statement will thus be compliant withCNL lexicons and CNL syntax structures. Optionally, the CNL userinterface may also generate, based on a probabilistic grammar inductionmodel, a probability for each candidate problem statement reflecting aprobability that the particular candidate problem statement is theproblem statement that the user intended. From the set of candidateproblem statements, the user may then select a candidate problemstatement to be included in the design problem statement. This processmay be repeated as necessary to produce a set of problem statementscomprising the design problem statement. Since each problem statement inthe set will be CNL-compliant, the design problem statement will also beCNL-compliant. The produced design problem statement may then beprocessed by the CNL engine 150 and the design engine 160 to produce anexecutable job description and a design solution to the produced designproblem statement.

At least one advantage of the disclosed technique is that the CNL userinterface allows users not proficient in the lexicons and/or syntaxstructures of the CNL to easily and more effectively produce a validdesign problem statement. A user would only need to chooseuser-selectable terms that are compliant with the CNL lexicons (a taskwhich the CNL user interface may also provide assistance in performing).From the chosen user-selectable terms, the CNL user interface generatesa set of candidate problem statements that are CNL-compliant from whichthe user chooses to add to the design problem statement. Thus, users caninput valid design problem statements without or with minimum CNLtraining.

Graphical User Interface for CNL

As discussed in the previous sections, the method 400 of FIG. 4 (e.g.,steps 410-430) and the method 700 of FIG. 7 provide different techniquesfor generating a design problem statement that is valid/CNL-compliant.However, even if a design problem statement is valid, as a whole, thevalid design problem statement may not reflect the design problemstatement that the user actually intended/envisioned (the “intendeddesign problem statement”). As described in relation to steps 440-460 ofFIG. 4, a valid design problem statement is processed (tokenized andparsed) to produce a design problem model, which is then converted intoan executable job description that is executed by a design applicationto produce a design solution to the design problem statement. However,if the design problem statement is not what was actually intended by theuser, this may not be realized until the design solution is produced.Thus, the entire process may need to be performed again until theintended design problem statement and intended design solution areproduced. This process may require several attempts by the user which isinefficient in terms of time and processing resources. Thus, a userinterface that assists users to produce an intended design problemstatements more effectively is needed.

In some embodiments, a CNL graphical user interface (UI) engineimplements a faster and more efficient way for the user to immediatelyconfirm whether a design problem statement is actually the intendeddesign problem statement. In these embodiments, CNL graphical UI enginegenerates a graphical user interface that assists users to produceintended design problem statements. The graphical user interface mayimplement a graphical representation of the design problem statementprior to conversion to an executable job description. In particular, thegraphical user interface may implement a graphical representation basedon the parsed representation of the design problem statement (the designproblem model) prior to conversion to an executable job description. Asused herein, a graphical representation of the design problem model alsorefers to a graphical representation of the design problem statement,and these phrases may be used interchangeably.

The graphical representation may implement a visualization of the designproblem statement/model by displaying graphical representations ofobjects and relationships between the objects as specified in the designproblem statement. The graphical representation is displayed to the uservia the graphical user interface. If the user is unsatisfied with thedisplayed visualization of the design problem statement, the user maydirectly modify the graphical representation via the graphical userinterface. Any modifications to the graphical representation will modifythe design problem statement accordingly (via modification of the designproblem model). If the user is satisfied with the displayedvisualization of the design problem statement, the intended designproblem statement/model is then converted to an executable jobdescription.

Thus, the graphical user interface provides immediate visual feedback ofthe received design problem statement to verify that the received designproblem statement is the intended design problem statement beforeconversion to an executable job description, thereby saving time andprocessing resources.

FIG. 8 illustrates yet another system configured to implement one ormore aspects of the present invention. As shown, the system 800includes, without limitation, a computing device 110 coupled to adatabase 170. Computing device 110 may be a server system, clientsystem, workstation, a laptop computer, a tablet or hand-held device, orany other type of computing device. The system 800 may comprise acomputer-aided design (CAD) system. Several components shown in FIG. 8have already described above in relation to FIGS. 1 and 5 and,therefore, are not discussed in detail here.

Computing device 110 includes one or more processing units 120 coupledto input/output (I/O) devices 130 and to memory unit 125. Memory unit125 includes a UI engine 140, a CNL UI engine 540, a CNL graphical UIengine 840, a controlled natural language (CNL) engine 150, and a designengine 160. A user/designer may input text information, received by theCNL graphical UI engine 840, by typing on a keyboard. In otherembodiments, a user/designer may input audio information, received bythe CNL graphical UI engine 840, by speaking into a microphone. In theseembodiments, the CNL graphical UI engine 840 comprises speechrecognition software to process the received speech audio and convert totext information. Computing device 110 is coupled to the database 170comprising a syntax database 200, lexicon database 300, and aprobabilistic grammar induction model 550.

In some embodiments, the CNL graphical UI engine 840 generates agraphical user interface that assists users to produce intended designproblem statements. The CNL engine 150 may receive an intended designproblem statement and process the intended design problem statement toproduce an executable job description using techniques described abovein relation to FIGS. 1-4 of the previous section. The design engine 160may receive the executable job description to produce a design solutionfor the intended design problem statement using techniques describedabove in relation to FIGS. 1-4 of the previous section.

FIG. 9 shows a first exemplary screenshot 900 of a graphical userinterface generated by the CNL graphical UI engine 840 of FIG. 8,according to one embodiment of the present invention. The firstexemplary screenshot 900 shows a graphical representation of a designproblem statement comprising a problem statement specifying “theclearance between the door and the ground must be 0.75 in.” Thus, thegraphical user interface shows graphical representations of objectscomprising “door” and “ground” and a spatial clearance relationshipbetween the two objects.

The graphical user interface may produce the graphical representation ofthe design problem statement based on the design problem model of thedesign problem statement. As discussed in relation to step 450 of FIG.4, the design problem model is a parsed representation of each problemstatement of the design problem statement. The parsed representation ofa problem statement may comprise the type of problem statement (e.g.,function, objective, constraint, etc.), a list of object names, andrelationships between the objects. The graphical user interface maydisplay graphical representations of objects and relationships betweenthe objects as specified in the problem statements of the design problemstatement. The graphical representation may comprise formal graph datathat describes the graphical representations of the objects andrelationships.

In some embodiments, the graphical user interface may graphicallyrepresent an object with a node 905 comprising a graphic illustration.In the example of FIG. 9, the graphic illustration for a node comprisesa conventional circle. In other embodiments, the graphic illustrationfor a node may comprise any other illustration (as shown in the exampleof FIG. 11). The graphical user interface may display the nodes inpositions in the graphical user interface so as to indicate relativespatial positions between the objects that are represented by the nodes.For example, the “door” node is placed above the “ground” node in thegraphical user interface.

In some embodiments, the graphical user interface may graphicallyrepresent a relationship between two objects with an edge 910 comprisinga graphic illustration. In the example of FIG. 9, the graphicillustration for an edge comprises a line. In other embodiments, thegraphic illustration for an edge may comprise any other illustration. Anedge or line representing a relationship may be displayed in differentforms or appearances to indicate different types of relationships. Inthe example of FIG. 9, the dashed line/edge indicates a spatialrelationship.

The graphical user interface may also display text 915 that identifiesnames of the objects represented by the nodes. In the example of FIG. 9,the shaded node represents a “door” object and the unshaded noderepresents a “ground” object. The graphical user interface may alsodisplay text 915 for a numerical value associated with a relationship.In the example of FIG. 9, the spatial relationship between the “door”object and the “ground” object is “0.75 in.”

FIG. 10 shows a second exemplary screenshot 1000 of a graphical userinterface generated by the CNL graphical UI engine 840 of FIG. 8,according to one embodiment of the present invention. The secondexemplary screenshot 1000 shows a graphical representation of a designproblem statement comprising the problem statement of FIG. 9 in additionto a new problem statement specifying “the door must be connected to aframe.” As shown in FIG. 10, the graphical user interface displays anadditional node 1005 representing the new “frame” object and anadditional edge 1010 representing the new connection relationshipbetween the “frame” object and the “door” object. In the example of FIG.10, the mechanical connection relationship between the “frame” objectand the “door” object is represented by a double-arrowed line.

FIG. 11 shows a third exemplary screenshot 1100 of a graphical userinterface generated by the CNL graphical UI engine 840 of FIG. 8,according to one embodiment of the present invention. As shown in FIG.11, the graphical user interface may graphically represent objects withnodes 1105 comprising graphic illustrations other than conventionalcircles. The graphic illustrations for nodes may comprisetwo-dimensional (2D) or three-dimensional (3D) illustrations thatvisually resemble the represented object. For example, the “frame” and“door” objects may be represented by illustrations resembling theobjects. The graphic illustrations for nodes may also comprise symbolicons that are commonly used to represent the object. For example, the“wall,” “ceiling,” and “ground” objects may be represented by commonlyused symbol icons representing these objects. As shown in FIG. 11, thenodes may be displayed in positions in the graphical user interface soas to indicate relative spatial positions between the objects that arerepresented by the nodes.

Edges may have different forms/appearances indicating different types ofrelationships so that an edge has a particular appearance depending onthe type of relationship the edge represents. As shown in FIG. 11, thegraphical user interface may also display a relationship legend 1110specifying a plurality of different types of relationships and an edgeform/appearance that represents each type of relationship. For example,a mechanical connection relationship may be represented by adouble-arrowed line, an applied weight/force relationship may berepresented by a single-arrowed line, a spatial relationship may berepresented by a dashed line, and a part-whole relationship may berepresented by a dot-ended line.

If the user is unsatisfied with the visualization of the design problemstatement displayed in the graphical user interface, the user maydirectly modify the graphical representation through the graphical userinterface. The user may directly modify the graphical representations ofthe objects and relationships within the graphical user interface. Theuser may modify the position of nodes and edges within the graphicaluser interface, for example by selecting and dragging nodes and edgeswith a mouse or touchscreen interface. The user can may also modify thetext for the name of an object, e.g., by clicking on the noderepresenting the object and typing in the new name of the object. Theuser can may also modify the text for a numerical value associated witha relationship, e.g., by clicking on the edge representing therelationship and typing in the new numerical value associated with therelationship. The user may also modify the graphical representation bydeleting a node representing an object or deleting an edge representinga relationship. The user may also modify the graphical representation byadding new nodes representing new objects, e.g., by double-clicking inan empty space of the graphical user interface to create a new noderepresenting the object and inputting text for the object name. The usermay also modify the graphical representation by adding new edgesrepresenting new relationships, e.g., by right-click and drag-and-dropfrom one node to another node and inputting text specifying the type ofrelationship and any numerical value associated with the relationship.

Any modifications to the graphical representation may modify the designproblem statement accordingly. In particular, the modifications to thegraphical representation may modify the design problem model (that is aparsed representation of the design problem statement), whicheffectively modifies the design problem statement. As discussed inrelation to step 450 of FIG. 4, the design problem model is a parsedrepresentation of each problem statement of the design problemstatement. The parsed representation of a problem statement may comprisethe type of problem statement (e.g., function, objective, constraint,etc.), a list of object names, and relationships between the objects.Modifications of objects or relationships displayed in the graphicalrepresentation will accordingly modify the parsed representations of theproblem statements of the design problem statement, which effectivelymodifies the design problem statement.

FIG. 12 illustrates a flow diagram of method steps for generating anintended design problem statement that is CNL-compliant, according toone embodiment of the present invention. Although the method steps aredescribed in conjunction with the systems of FIG. 8-11, persons skilledin the art will understand that any system configured to perform themethod steps, in any order, is within the scope of the presentinvention.

As shown, a method 1200 begins at step 1205, where the CNL engine 150,when executed by processing unit 120, receives a valid design problemstatement that is CNL-compliant. For example, the valid design problemstatement may be produced using steps 410-430 of FIG. 4 or by using themethod 700 of FIG. 7. At step 1210, the CNL engine 150 processes(tokenizes and parses) the design problem statement using the lexicondatabase 300 and syntax database 200 to produce a parsed representationof the design problem statement, the parsed representation comprising adesign problem model. Step 1210 comprises steps 440-450 of FIG. 4 and isnot discussed in detail here.

At step 1215, the CNL graphical UI engine 840 receives the designproblem model and generates and displays a graphical representation ofthe current design problem statement/model in a graphical userinterface. Note that the graphical representation of the design problemmodel also comprises a graphical representation of the design problemstatement. The graphical representation may generate a visualization ofthe design problem statement/model by displaying graphicalrepresentations of objects and relationships between the objects asspecified in the design problem statement/model. The graphicalrepresentation may comprise formal graph data that describes thegraphical representations of the objects and relationships. Thegraphical user interface may graphically represent an object with a nodeand a relationship with an edge. The graphical user interface mayfurther display text for object names or numerical values associatedwith a relationship. The graphical user interface may additionallydisplay a legend specifying different types of relationships and an edgeappearance that represents each type of relationship.

At step 1220, the CNL graphical UI engine 840 determines if the user issatisfied with the graphical representation of the current designproblem statement/model (i.e., that it is the intended design problemstatement/model). For example, the graphical user interface may receivea selection of an interactive button or particular text/speech thatindicates the user wants to proceed with converting the current designproblem statement/model to an executable job description. If the CNLgraphical UI engine 840 determines that the user is satisfied with thegraphical representation of the current design problem statement/model,method 1200 continues at step 1235. If the CNL graphical UI engine 840determines that the user is not satisfied with the graphicalrepresentation of the current design problem statement/model, method1200 continues at step 1225.

At step 1225, the CNL graphical UI engine 840 receives one or moremodifications to the graphical representation of the current designproblem statement/model. The modifications to the graphicalrepresentation may be received directly through the graphical userinterface. For example, the user may directly modify the graphicalrepresentations of the objects and relationships and any text displayedwithin the graphical user interface (e.g., modifying the position ofnodes representing objects and edges representing relationships,modifying text for object names or numerical values associated withrelationships, adding new nodes representing new objects, adding newedges representing new relationships, etc.).

At step 1230, the CNL graphical UI engine 840 modifies the currentdesign problem statement/model according to the received one or moremodifications to the graphical representation of the current designproblem statement/model. The CNL graphical UI engine 840 may do so bymodifying the current design problem model comprising parsedrepresentations of the problem statements of the design problemstatement. The modifications to the current design problem modeleffectively modifies the current design problem statement as well. Themethod 1200 then continues at step 1215 where the CNL graphical UIengine 840 generates and displays a graphical representation of themodified design problem statement/model in the graphical user interface.Steps 1215-1230 continually repeat until the user is satisfied with thegraphical representation at step 1220.

If the user is satisfied with the graphical representation of thecurrent design problem statement/model it is considered the intendeddesign problem statement/model. At step 1235, the CNL engine 150produces an executable job description based on the intended designproblem model. Step 1235 comprises step 460 of FIG. 4 and is notdiscussed in detail here. At step 1240, the design engine 160 executesthe executable job description to produce a design solution. Step 1240comprises step 470 of FIG. 4 and is not discussed in detail here. Themethod 1200 then ends.

In sum, a CNL graphical UI engine 840 on a computing device 110 isconfigured to generate a graphical user interface that assists users todevelop intended design problem statements that reflect the designproblem statement that the user intends/envisions. The graphical userinterface displays a graphical representation of a design problemstatement/model. The graphical representation may generate avisualization of the design problem statement/model by displayinggraphical representations of objects and relationships between theobjects as specified in the design problem statement/model. Thegraphical user interface may graphically represent an object with a nodeand a relationship with an edge. The graphical user interface mayfurther display text for object names or numerical values associatedwith a relationship. The CNL graphical UI engine 840 may receivemodifications to the graphical representation of the design problemstatement/model directly through the graphical user interface. Inresponse, the CNL graphical UI engine 840 may modify the design problemstatement/model accordingly. Once the user is satisfied with thegraphical representation of the design problem statement/model, thedesign problem statement/model is considered the intended design problemstatement/model. The CNL engine 150 then produces an executable jobdescription based on the intended design problem model and the designengine 160 executes the executable job description to produce a designsolution.

At least one advantage of the disclosed technique is that the graphicaluser interface generates a visualization of the design problemstatement/model so the user can verify that the design problemstatement/model is actually what the user intended. The graphical userinterface generates immediate visual feedback of a design problemstatement to verify that the design problem statement is the intendeddesign problem statement before conversion to an executable jobdescription, thus saving time and processing resources. Also, the usermay easily make modifications to the design problem statement/model asneeded by directly modifying the graphical representation through thegraphical user interface.

Dialogue User Interface

As discussed in the previous section, the method 1200 of FIG. 12provides a technique for generating an intended design problemstatement. However, even if an intended design problem statementcaptures what the user/designer actually intended/envisioned, theintended design problem statement is still a reflection of the personalknowledge and experience of the user/designer. An intended designproblem statement and any design solutions generated from that designproblem statement may not fully explore other possible design problemstatements and/or design solutions. Consequently, the generated designsolutions may ultimately be limited by the designer's personal knowledgeand experience.

In addition, the convention design process is usually a convergentprocess, rather than an exploratory process. For example, designerstypically start with a conceptual idea about potential design solutionsfor a design problem and then move into more concrete and restrictiveengineering cycles, during which the possible design solutions arereduced and narrowed down to a few design solutions which can bemodeled, simulated, and optimized. Toward the late stage of the designprocess, new constraints may be added. But given the limited number ofdesign solutions now available at this stage, compromises are typicallymade in realizing the final design solution, leading to a sub-optimaldesign. The convergent nature of the traditional design process mayinherently limit the opportunity to find innovative and optimal designsolutions. Conventional CAD systems are configured to follow thistraditional convergent design process. Conventional CAD systems mayassist users to model, simulate, and optimize the limited designssolutions that are available in the later stages of design.

As the foregoing illustrates, the design solutions generated by theconventional design process may be limited by the designer's personalknowledge and experience as well as the convergent nature of theconventional design process. Thus, a user interface that assists usersto explore further design solutions is needed.

In some embodiments, a dialogue user interface (UI) engine provides away for the user to more fully explore possible design intentions anddesign solutions. The dialogue UI engine may receive a user inputcomprising a design intention description that describes intentions andgoals of a design problem and/or design solution. The design intentiondescription may be in a variety of different forms, such as aCNL-compliant design problem statement. In these embodiments, the designintention description is compliant with a controlled natural language(CNL) that defines lexicons and syntax structures permitted in thedesign intention description. However, a design intention descriptionmay also take other forms, such as another natural-language baseddescription, graphical representation of a design problem, or even adesign solution from a design application (e.g., set of geometries, 3Dmodel, etc.). The dialogue UI engine interprets the design intentiondescription and may respond with suggestions of modifications to thedesign intention description and/or one or more suggested designsolutions. Based on the suggestions, the user may respond with amodified design intention description, which the dialogue UI engineagain interprets and responds with suggestions for modifications to thedesign intention description and/or suggested design solutions.

The dialogue UI engine implements a dialogue-based design process tomore fully explore possible design intention descriptions and designsolutions. The dialogue UI engine allows the user to interact with thedialogue UI engine in an iterative manner to discover design intentiondescriptions and/or design solutions not previously considered. Theiterative dialogue-based design process may assist the user to find anoptimal design solution.

FIG. 13 illustrates yet another system configured to implement one ormore aspects of the present invention. As shown, the system 1300includes, without limitation, a computing device 110 coupled to adatabase 170. Computing device 110 may be a server system, clientsystem, workstation, a laptop computer, a tablet or hand-held device, orany other type of computing device. The system 1300 may comprise acomputer-aided design (CAD) system. Several components shown in FIG. 13have already described above in relation to FIGS. 1 and 5 and,therefore, are not discussed in detail here.

Computing device 110 includes one or more processing units 120 coupledto input/output (I/O) devices 130 and to memory unit 125. Memory unit125 includes a UI engine 140, a CNL UI engine 540, a CNL graphical UIengine 840, a dialogue UI engine 1340, a controlled natural language(CNL) engine 150, and a design engine 160. A user/designer may inputtext information (e.g., natural-language based text or commands),received by the dialogue UI engine 1340, by typing on a keyboard. Inother embodiments, a user/designer may input audio information, receivedby the dialogue UI engine 1340, by speaking into a microphone. In theseembodiments, the dialogue UI engine 1340 comprises speech recognitionsoftware to process the received speech audio and convert to textinformation. Computing device 110 is coupled to the database 170comprising a syntax database 200, lexicon database 300, a probabilisticgrammar induction model 550, and a design solution database 1350.

In some embodiments, the dialogue UI engine 1340 generates a userinterface that generates a dialogue-based design process for users toexplore possible design intention descriptions and design solutions. Thedialogue UI engine 1340 may comprise a plurality ofsub-modules/sub-engines for performing particular functions, as shown inFIG. 14A. The design solution database 1350 may store design solutions,such as existing design solutions and suggested design solutionsgenerated by the dialogue-based design process implemented by thedialogue UI engine 1340. The user may query, browse and reuse designsolutions stored in the design solution database 1350.

FIG. 14A is a conceptual diagram of a dialogue-based design processgenerated by the dialogue UI engine of FIG. 13, according to oneembodiment of the present invention. As shown in FIG. 14A, thedialogue-based design process 1400 implements several computer engines,including multimodal user interface engine 1410, design engine 160, andsub-modules/sub-engines of the dialogue UI engine 1340. The dialogue UIengine 1340 may include sub-modules/sub-engines comprising a designintention mapper 1420, state manager 1430, policy manager 1440, anddialogue generator 1450.

The design process 1400 begins when a user 1401 interacts with amultimodal user interface engine 1410 to produce a first user input. Insome embodiments, the multimodal user input engine 1410 comprises twoseparate components comprising a multimodal input interface engine and amultimodal output interface engine. In other embodiments, the multimodaluser input engine 1410 may comprise a single integrated componentcomprising the multimodal input interface engine and the multimodaloutput interface engine. In general, the user input comprises a designintention description that describes intentions and goals of a designproblem and/or design solution. For example, the design intentiondescription may describe goals, functions, objectives, constraints,environment objects, or environment interactions of the design problem.In some embodiments, the user input comprises a CNL-compliant designproblem statement. In these embodiments, the multimodal user interfaceengine 1410 may comprise the UI engine 140 or the CNL UI engine 540. Forexample, the steps 410-430 of FIG. 4 or the method 700 of FIG. 7 may beperformed to produce a CNL-compliant design problem statement.

In other embodiments, the user input comprises any other form of designintention description. For example, the user input may comprise anothernatural-language based description other than CNL. In another example,the user input may comprise a graphical representation of a designproblem statement described above in relation to FIGS. 8-12. In thisexample, the multimodal user interface engine 1410 may comprise the CNLgraphical UI engine 840. As a further example, the user input maycomprise a design solution (e.g., set of geometries, 3D model, etc.). Inthis example, the multimodal user interface engine 1410 may comprise adesign engine 160 (e.g., geometry generator application, modelerapplication, etc.). Note that although the graphical representation andthe design solution user inputs do not provide a natural-language baseddescription of the design intention, they contain graphical/visualinformation that indicate the design intention.

As described, the user input may have a plurality of different forms andmay be generated using different types of multimodal user interfaceengines 1410. To interact with the multimodal user interface engine1410, the user may input text information (e.g., natural-language basedtext or commands) by typing on a keyboard. In other embodiments, theuser may input audio information, received by the multimodal userinterface engine 1410, by speaking into a microphone. In theseembodiments, the multimodal user interface engine 1410 comprises speechrecognition software to process the received speech audio and convert totext information.

As described below, the sub-engines of the dialogue UI engine 1340 mayprocess the design intention description (user input) to produce a setof actions based at least in part on the design intention description.The set of actions may generate a suggested design intention descriptionand/or executable job descriptions for producing suggested designsolutions for the design intention description.

The design intention mapper 1420 of the dialogue UI engine 1340 receivesthe first user input (design intention description) and maps/convertsthe user input into a first set of observations regarding the designintention description. The first set of observations may comprise a setof abstract semantic representations of the received design intentiondescription. In some embodiments, the set of observations may comprisedifferent types of observations, each type of observation describing adifferent aspect of the design intention description. For example, theset of observations may include observations regarding a functionaspect, objective aspect, constraint aspect, environment object aspect,or environment interaction aspect (or any combination thereof) relatingto the design intention description. These types of aspects relating toa design problem and/or design solution are discussed in relation toFIG. 2, and, therefore, are not discussed in detail here.

The state manager 1430 receives the first set of observations andupdates a current state S_(t) based on a set of observations. Forexample, if the state manager 1430 implements a Markov decisionprocesses approach, the current state S_(t) may start in an initialstate S₀, and each subsequent state may be modelled by a transitionprobability: p(S_(t)|S_(t-1), a_(t-1)). As the dialogue-based designprocess progresses, a reward may be assigned at each step in the processdesigned to mirror the desired characteristics of the dialogue system. Adialogue model M and a policy model P may then be optimized bymaximizing the expected accumulated sum of these rewards either on-linethrough interaction with users or off-line from a corpus of dialoguescollected within a similar domain. In some embodiments, the statemanager 1430 may update the current state S_(t) by implementing a statemachine. FIG. 14B is a conceptual diagram of a state machine 1490implemented by the state manager 1430 of FIG. 14A, according to oneembodiment of the present invention. The state machine 1490 is exemplaryonly, and in other embodiments, another state machine may be used.

The policy manager 1440 receives the updated current state S_(t), anddetermines and executes a set of one or more actions based on thecurrent state S_(t) and a set of rules (policy). The policy manager 1440may determine and execute a different set of actions at each differentstate S_(t). The set of actions is based on the current state S_(t) andthe policy as expressed by the equation a_(t)=P_(i)(S_(t)), where a_(t)comprises the set of actions, P_(i) comprises the policy/set of rules,and S_(t) comprises the current state. The set of rules of the policymay be either manually authored/created or automatically generated, forexample, using partially observable Markov decision processes (POMDPs).As known in the art, POMDP is a generalization of a Markov decisionprocess (MDP) which implements a mathematical framework for modelingdecision making. In other embodiments, other techniques are used togenerate the policy.

Note that since the set of actions determined and executed by the policymanager 1440 is based at least in part on the current state S_(t), whichin turn is based at least in part on the set of observations, which inturn is based at least in part on the design intention description(first user input), the set of actions are effectively based at least inpart on the design intention description.

The set of actions determined and executed by the policy manager 1440may comprise two general types of actions including 1) producing asystem response to the user based on the first user input, and 2)producing one or more executable job descriptions for producing one ormore design solutions for the design problem based on the first userinput. The policy manager 1440 may determine to perform one or bothtypes of actions in response to the user input. The system response mayinclude a modified set of observations that are a modification of thefirst set of observations generated by the design intention mapper 1420(e.g., by modifying, deleting, or adding to the first set ofobservations). As the first set of observations are mapped/convertedfrom the first user input, the system response may comprise a suggestionto the user for modifying the first user input. The one or moreexecutable job descriptions may be generated for producing one or moresuggested design solutions based on the user input, the suggested designsolutions comprising suggestions for possible design solutions to thedesign problem described in the first user input. If one of the actionsin the set of actions comprises producing a system response, the systemresponse is sent to the dialogue generator 1450. If one of the actionsin the set of actions comprises producing one or more executable jobdescriptions, the one or more executable job descriptions is sent to thedesign engine 160.

The dialogue generator 1450 receives the system response and convertsthe system response into a suggested/modified user input. The dialoguegenerator 1450 may do so by performing the inverse operation of thedesign intention mapper 1420 by converting the modified set ofobservations of the system response into a suggested user input that isin the same form as the first user input. For example, if the first userinput comprised a natural-language based design intention description,the suggested user input may comprise a modified natural-language baseddesign intention description. As a further example, if the first userinput comprised a graphical representation or a design solution, thesuggested user input may comprise a modified graphical representation ora modified design solution. The suggested/modified user input is sent tothe multimodal user interface engine 1410 which displays thesuggested/modified user input for consideration by the user 1401. Thedisplayed suggested user input may comprise a suggestion to the user1401 for modifying the first user input.

The design engine 160 may receive one or more executable jobdescriptions and generate one or more suggested design solutions 1460for consideration by the user 1401. The one or more suggested designsolutions 1460 may be stored to the design solution database 1350. Thesuggested design solutions 1460 may comprise suggestions for possibledesign solutions to the first user input for consideration by the user1401.

The user 1401 may receive and consider the suggested user input and/orthe one or more suggested design solutions 1460. As discussed above, thesuggested user input may comprise a suggestion to the user 1401 formodifying the first user input and the suggested design solution(s) 1460may comprise suggestions for possible design solutions to the first userinput. Based on the suggested user input and/or the suggested designsolution(s), the user then interacts with the multimodal user interfaceengine 1410 to produce a second user input. The design process 1400 thenrepeats for the second user input to explore other possible designintention statements and/or design solutions. In this manner, theiterative dialogue-based design process 1400 may assist the user to findan optimal design solution.

FIG. 15 illustrates a flow diagram of method steps for generating adialogue-based design process, according to one embodiment of thepresent invention. Although the method steps are described inconjunction with the systems of FIG. 13-14, persons skilled in the artwill understand that any system configured to perform the method steps,in any order, is within the scope of the present invention.

As shown, a method 1500 begins at step 1510, where the design intentionmapper 1420 of the dialogue UI engine 1340, when executed by processingunit 150, receives a first user input from a multimodal user interfaceengine 1410. The first user input may comprise a design intentiondescription that describes intentions and goals of a design problemand/or design solution. The first user input may be specified in avariety of different forms, such as a natural-language based description(e.g., CNL), graphical representation, or a design solution.

At step 1520, the design intention mapper 1420 maps/converts the firstuser input into a first set of observations regarding the designintention description. The set of observations may comprise a set ofabstract semantic representations, each describing a different aspect ofthe design intention description (such as function, objective,constraint, environment object, environment interaction, or anycombination thereof). At step 1530, the state manager 1430 updates acurrent state S_(t) based on the first set of observations.

At step 1540, the policy manager 1440 determines and executes a set ofone or more actions based on the current state S_(t) and a set of rules(policy). The set of actions may comprise generating a system responseto the user and/or producing one or more executable job descriptionsbased on the first user input. The system response may include amodified set of observations that are a modification of the first set ofobservations. Note that, because the set of actions is determined basedat least in part on the current state S_(t), which in turn is based atleast in part on the set of observations, which in turn is based atleast in part on the design intention description (first user input),the set of actions are effectively based at least in part on the designintention description.

At step 1550, if one of the actions in the set of actions comprisesproducing a system response, the dialogue generator 1450 converts thesystem response into a suggested user input and sends the suggested userinput to the multimodal user interface engine 1410. The dialoguegenerator 1450 may do so by performing the inverse operation of thedesign intention mapper 1420 by converting the modified set ofobservations of the system response into a suggested user input that isin the same form as the first user input. The method 1500 then causesthe suggested user input (modified design intention description) to beexecuted for display by the multimodal user interface engine 1410 forconsideration by the user 1401.

At step 1560, if one of the actions in the set of actions comprisesproducing one or more executable job descriptions, the one or moreexecutable job descriptions is sent to the design engine 160. The designengine 160 may execute the one or more executable job descriptions andgenerate one or more suggested design solutions 1460 for considerationby the user 1401. The one or more suggested design solutions 1460 mayalso be stored to the design solution database 1350.

The user 1401 may receive and consider the suggested user input and/orthe one or more suggested design solutions 1460. The suggested userinput may comprise a suggested user input and the suggested designsolution(s) 1460 may comprise suggested design solutions to the firstuser input. At step 1570, the dialogue UI engine 1340 determines if theuser is satisfied with the suggested design solutions. For example, thedialogue UI engine 1340 may receive a selection of an interactive buttonor particular text/speech that indicates the user wants to end thedialogue-based design process. If so, the method 1500 ends. If not, themethod 1500 continues at step 1510 where the design intention mapper1420 receives a second user input from the multimodal user interfaceengine 1410. Based on the suggested user input and/or the suggesteddesign solution(s), the user may interact with the multimodal userinterface engine 1410 to produce the second user input. The method 1500then repeats for the second user input (in place of the first userinput) to explore other possible design intention statements and/ordesign solutions.

In sum, a dialogue UI engine 1340 on a computing device 110 isconfigured to implement a dialogue-based design process for assistingusers to more fully explore possible design intentions and designsolutions. The dialogue UI engine may receive a user input comprising adesign intention description that describes intentions and goals of adesign problem and/or design solution. The design intention descriptionmay be in a variety of different forms. The dialogue UI engineinterprets the design intention description and may respond withsuggestions of modifications to the design intention description and/orone or more suggested design solutions. Based on the suggestions, theuser may respond with a modified design intention description, which thedialogue UI engine again interprets and responds with suggestions formodifications to the design intention description and/or suggesteddesign solutions.

At least one advantage of the disclosed technique is that thedialogue-based design process allows the user to interact with thedialogue UI engine in an iterative manner to discover design intentiondescriptions and/or design solutions not previously considered orexplored. The iterative dialogue-based design process may assist theuser to find an optimal design solution.

The descriptions of the various embodiments have been presented forpurposes of illustration, but are not intended to be exhaustive orlimited to the embodiments disclosed. Many modifications and variationswill be apparent to those of ordinary skill in the art without departingfrom the scope and spirit of the described embodiments.

Aspects of the present embodiments may be embodied as a system, methodor computer program product. Accordingly, aspects of the presentdisclosure may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “circuit,”“module” or “system.” Furthermore, aspects of the present disclosure maytake the form of a computer program product embodied in one or morecomputer readable medium(s) having computer readable program codeembodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

Aspects of the present disclosure are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, enable the implementation of the functions/acts specified inthe flowchart and/or block diagram block or blocks. Such processors maybe, without limitation, general purpose processors, special-purposeprocessors, application-specific processors, or field-programmable

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While the preceding is directed to embodiments of the presentdisclosure, other and further embodiments of the disclosure may bedevised without departing from the basic scope thereof, and the scopethereof is determined by the claims that follow.

The invention claimed is:
 1. A computer-implemented method forgenerating design problem statements that are compliant with acontrolled natural language (CNL), the method comprising: receiving oneor more selectable terms that are compliant with a plurality of lexiconsdefined by CNL and stored to a lexicon database; generating one or morecandidate problem statements compliant with the plurality of lexiconsand a plurality of syntax structures defined by the CNL and stored to asyntax database, the one or more candidate problem statements generatedbased on the one or more selectable terms and the plurality of syntaxstructures; and receiving a selection of a first candidate problemstatement included in the set candidate problem statements.
 2. Thecomputer-implemented method of claim 1, further comprising: displaying aplurality of selectable terms that are compliant with lexicons of theCNL, wherein the one or more selectable terms are selected from theplurality of selectable terms.
 3. The computer-implemented method ofclaim 1, further comprising: adding the first candidate problemstatement to a design problem statement; and repeating the receiving,generating, and receiving steps to identify a second candidate problemstatement; and adding the second candidate problem statement to thedesign problem statement.
 4. The computer-implemented method of claim 3,wherein the design problem statement describes a design problem, andfurther comprising processing the design problem statement using thelexicons and syntax structures of the CNL to produce an executable jobdescription that, when executed, produces the design solution for thedesign problem statement.
 5. The computer-implemented method of claim 1,further comprising: determining a probability score for each candidateproblem statement that indicates the likelihood that the candidateproblem statement is an intended problem statement.
 6. Thecomputer-implemented method of claim 5, further comprising: displayingthe candidate problem statements in order based on the probabilityscores.
 7. The computer-implemented method of claim 1, wherein eachcandidate problem statement specifies a particular aspect of a designproblem.
 8. The computer-implemented method of claim 1, wherein thefirst candidate problem statement comprises a problem statement that isintended by a user inputting the one or more selectable terms.
 9. Thecomputer-implemented method of claim 1, wherein generating the set ofcandidate problem statements comprises comparing the one or moreselectable terms with the syntax structures of the CNL to determinematching syntax structures used to generate the set of candidate problemstatements.
 10. A non-transitory computer-readable medium storingprogram instructions that, when executed by a processor, cause theprocessor to generate design problem statements that are compliant witha controlled natural language (CNL) by performing the steps of:receiving one or more selectable terms that are compliant with aplurality of lexicons defined by CNL and stored to a lexicon database;generating one or more candidate problem statements compliant with theplurality of lexicons and a plurality of syntax structures defined bythe CNL and stored to a syntax database, the one or more candidateproblem statements generated based on the one or more selectable termsand the plurality of syntax structures; and receiving a selection of afirst candidate problem statement included in the set candidate problemstatements.
 11. The non-transitory computer-readable medium of claim 10,further comprising the step of: displaying a plurality of selectableterms that are compliant with lexicons of the CNL, wherein the one ormore selectable terms are selected from the plurality of selectableterms.
 12. The non-transitory computer-readable medium of claim 10,further comprising the steps of: adding the first candidate problemstatement to a design problem statement; and repeating the receiving,generating, and receiving steps to identify a second candidate problemstatement; and adding the second candidate problem statement to thedesign problem statement.
 13. The non-transitory computer-readablemedium of claim 12, wherein the design problem statement describes adesign problem, and further comprising processing the design problemstatement using the lexicons and syntax structures of the CNL to producean executable job description that, when executed, produces the designsolution for the design problem statement.
 14. The non-transitorycomputer-readable medium of claim 10, further comprising the step of:determining a probability score for each candidate problem statementthat indicates the likelihood that the candidate problem statement is anintended problem statement.
 15. The non-transitory computer-readablemedium of claim 10, further comprising the steps of: before receivingthe set of selectable terms, displaying different types of selectableterms and selectable terms for each type that are compliant withlexicons of the CNL, wherein receiving the one or more selectable termscomprises receiving a selection of one or more displayed selectableterms.
 16. The non-transitory computer-readable medium of claim 10,wherein each candidate problem statement comprises a suggestion of aproblem statement that is intended by a user inputting the one or moreselectable terms.
 17. The non-transitory computer-readable medium ofclaim 10, wherein: the one or more selectable terms comprises one ormore different types of selectable terms; each syntax structurespecifies one or more types of selectable terms; and generating the setof candidate problem statements comprises comparing the types ofselectable terms of the received set of selectable terms with the typesof selectable terms of the syntax structures of the CNL to determinematching syntax structures used to generate the set of candidate problemstatements.
 18. The non-transitory computer-readable medium of claim 17,wherein a matching syntax structure provides a syntax structure for acandidate problem statement.
 19. A system configured for generatingdesign problem statements that are compliant with a controlled naturallanguage (CNL), comprising: a memory that includes a CNL user interface(UI) engine; and a processor coupled to the memory, wherein, uponexecuting the CNL UI engine, is configured to: receive one or moreselectable terms that are compliant with a plurality of lexicons definedby CNL and stored to a lexicon database; generate one or more candidateproblem statements compliant with the plurality of lexicons and aplurality of syntax structures defined by the CNL and stored to a syntaxdatabase, the one or more candidate problem statements generated basedon the one or more selectable terms and the plurality of syntaxstructures; and receive a selection of a first candidate problemstatement included in the set candidate problem statements.
 20. Thesystem of claim 19, wherein the processor executes the CNL UI enginefurther for: displaying a plurality of selectable terms that arecompliant with lexicons of the CNL, wherein the one or more selectableterms are selected from the plurality of selectable terms.